package com.sino.second.struts2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sino.business.IBasicInfoService;
import com.sino.business.IStaticDataService;
import com.sino.business.service.LoginInfo;
import com.sino.model.BasicInfoModel;
import com.sino.model.ExpertModel;
import com.sino.second.business.IExpertsVoteService;
import com.sino.second.business.IReviewService;
import com.sino.second.business.IZjpsfpService;
import com.sino.second.business.service.BaseDataService;
import com.sino.second.exception.BusinessException;
import com.sino.second.model.ExpertsReviewModel;
import com.sino.second.model.ExpertsReviewModel2;
import com.sino.second.model.XmReviewResults;
import com.sino.second.model.XmReviewResults2;
import com.sino.second.model.XmpsdjModel;
import com.sino.second.model.XmpszbModel;
import com.sino.util.Config;
import com.sino.util.CreatQueryCondition;
import com.sino.util.PageControl;
import com.sino.util.SysParameter;
import com.sino.util.page.PagerModel;
import com.sino.util.page.PagerQueryCondition;
import com.sino.util.page.SystemContext;

public class Review2Action extends ActionSupport {
	private IStaticDataService staticDateService;// 基础数据

	private IReviewService Review2ServiceImpl;// 复审service

	private BaseDataService baseDataService;// 基础数据1;

	private IBasicInfoService basicInfoService;// 基本信息

	private IZjpsfpService zjpsfpServiceImp;// 专家评审分配service

	private IExpertsVoteService expertsVoteServiceImpl;// 声明IExpertsVoteService业务类

	private List<BasicInfoModel> basicInfoList;// 项目基本信息

	private BasicInfoModel basicinfoModel;// 基本信息基础类

	private IReviewService review1ServiceImpl;// 专家评审ID

	private List<XmpszbModel> xpszbList;// 项目评审指标

	private String pageStr;// 分页字符串

	private String xmTitle;// 项目标题

	private int pageRow;// 分页行

	private String operAction;// 操作ACTION

	private String page;// 当前页

	private String xmId;// 项目ID

	private String zjId;// 专家ID

	private String jydjId;// 建议等级id

	private String jydjName;// 建议等级名称

	private String fzqzzf;// 项目总分（计算权重）

	private String xmzzpjf;// 项目权重平均分（计算权重）

	private String xmzf;// 项目总分

	private String xmpjf;// 项目平均分

	private String xmpxpjf;// 项目排序平均分

	private String xkId = "";// 学科id

	private String shouldReviewExpertCount;// 已评专家数

	List<ExpertsReviewModel> ermList;// 专家评审分数model列表

	private List<ExpertsReviewModel2> erm2List;// 专家复审分数model列表

	private List<XmReviewResults> review1List;// 初审结果表

	private List<XmReviewResults> review2List;// 复审结果表

	private List<XmpsdjModel> xdmList;// 项目等级

	private List<ExpertModel> emList;// 专家列表

	private List<XmReviewResults2> xmReviewResults2List;// 复审结果model列表

	private PagerModel xmReviewResults2Pm;// 复审结果pagerModel

	private ExpertsReviewModel2 erm2;// 复审项目分数信息

	private String year; // 年度

	private boolean viewExpertReview = false;// 是否查看专家评审信息（false：可以进行评审，true：只能进行查看）

	private boolean alreadyThirdReview = false;// 判断是否已经大评委投票，如果已经大评委投票，则将此字段置为true，否则为false

	private String pageroffset = "";

	/**
	 * 项目基本信息
	 */
	private List hyList;

	private List xkList;

	private List zlTypeList;

	private List zlType1List;

	private List xkzlList;

	private List areaList;

	private List flztList;

	private List qxkwList;

	private String fileName;// 下载文件名

	private InputStream fileInputStream;// 下载输入流

	/**
	 * 初审项目信息
	 * 
	 * @return
	 */
	public String expertsreview2XmList() {
		ExpertModel em = (ExpertModel) ActionContext.getContext().getSession()
				.get("expertModel");
		if (true != em.isSecondReview()) {
			throw new BusinessException("sys.secondReview.exception");

		}
		CreatQueryCondition creatQueryCondition = new CreatQueryCondition();// 条件查询类
		String hqlWhere = " txj1.basicinfo.xk.id='" + em.getSysZhuanyemamcId()
				+ "' and txj1.year=" + SysParameter.CURRENT_YEAR;// 通过项目、合格项目
		creatQueryCondition.initializtion(ServletActionContext.getRequest());
		if (creatQueryCondition.getHqlWhere().length() > 1) {
			hqlWhere += " and " + creatQueryCondition.getHqlWhere();
		}
		PageControl pageControl = new PageControl();// 翻页控制类

		pageControl.setPage(page);// 设置当前页
		pageControl.setPageSize(20);// 设置每页显示的记录数量

		pageControl.setRowCount(this.getReview2ServiceImpl().findReviewXmCount(
				em.getSysZhuanyemamcId(), hqlWhere));// 设置总记录数
		int startRow = (pageControl.getPage() - 1) * pageControl.getPageSize();// 开始行数
		int pageSize = pageControl.getPageSize();// 每页显示的数量
		this.setPageRow(startRow);
		pageStr = pageControl.getPageInfo(
				"expertsreview2XmList.action?review=1", creatQueryCondition
						.getCondition());
		review1List = this.getReview2ServiceImpl().findReviewXmList(startRow,
				pageSize, em.getSysZhuanyemamcId(), hqlWhere);// 分页查询项目信息
		xmTitle = SysParameter.CURRENT_YEAR + "年北京市发明专利初审基本信息列表";
		this.setBasicInfoList(basicInfoList);
		this.setPageStr(pageStr);
		return "success";

	}

	/**
	 * 项目分数显示
	 * 
	 * @return
	 */
	public String viewReview2Xm() {
		this.setHyList(this.getStaticDateService().findHyList());
		this.setXkList(this.getStaticDateService().findXkList());
		this.setZlTypeList(this.getStaticDateService().findZlTypeList());
		this.setZlType1List(this.getStaticDateService().findZlType1List());
		this.setXkzlList(this.getStaticDateService().findXkzlList());
		this.setAreaList(this.getStaticDateService().findAreaList());
		this.setFlztList(this.getStaticDateService().findFlztList());
		this.setQxkwList(this.getStaticDateService().findQxkwList());
		this.setBasicinfoModel(this.getBasicInfoService().findBasicinfoById(
				xmId));
		xdmList = this.getBaseDataService().getXmpsdjModelByXmpsdj();
		xpszbList = this.getBaseDataService().getXmpszb();
		List<ExpertsReviewModel2> erm2List = new ArrayList<ExpertsReviewModel2>();
		ermList = this.getReview2ServiceImpl().findReviewsList(xmId,
				new Integer(zjId));
		for (ExpertsReviewModel erm : ermList) {
			erm2List.add((ExpertsReviewModel2) erm);
		}
		this.setErm2List(erm2List);
		this.setZjId(zjId);
		return this.SUCCESS;
	}

	/**
	 * 项目分数显示，用于奖励办操作
	 * 
	 * @return
	 */
	public String viewExcepertReview2Xm() {
		this.setHyList(this.getStaticDateService().findHyList());
		this.setXkList(this.getStaticDateService().findXkList());
		this.setZlTypeList(this.getStaticDateService().findZlTypeList());
		this.setZlType1List(this.getStaticDateService().findZlType1List());
		this.setXkzlList(this.getStaticDateService().findXkzlList());
		this.setAreaList(this.getStaticDateService().findAreaList());
		this.setFlztList(this.getStaticDateService().findFlztList());
		this.setQxkwList(this.getStaticDateService().findQxkwList());
		this.setBasicinfoModel(this.getBasicInfoService().findBasicinfoById(
				xmId));
		xdmList = this.getBaseDataService().getXmpsdjModelByXmpsdj();
		xpszbList = this.getBaseDataService().getXmpszb();
		List<ExpertsReviewModel2> erm2List = new ArrayList<ExpertsReviewModel2>();
		ermList = this.getReview2ServiceImpl().findReviewsList(xmId,
				new Integer(zjId));
		for (ExpertsReviewModel erm : ermList) {
			erm2List.add((ExpertsReviewModel2) erm);
		}
		this.setErm2List(erm2List);
		this.setZjId(zjId);
		return this.SUCCESS;

	}

	/**
	 * 保存复审项目
	 * 
	 * @return
	 */
	public String saveReview2Xm() {

		this.getReview2ServiceImpl().saveOrUpdateReviews(erm2List);
		return this.SUCCESS;
	}

	/**
	 * 奖励办保存复审项目
	 * 
	 * @return
	 */
	public String saveExcepertReview2Xm() {
		this.getReview2ServiceImpl().saveOrUpdateReviews(erm2List);

		/**
		 * 以下重新加载当前页面
		 */
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("text/html; charset=utf-8");
		try {
			PrintWriter out = response.getWriter();
			out
					.println("<script language='JavaScript' type='text/JavaScript'>");
			out.println("window.opener.location.reload();");// 刷新父窗口
			out.println("window.opener.opener.location.reload();");// 刷新父窗口
			/**
			 * 以下三行代码实现不提示，直接关闭当前窗口功能
			 */
			out.println("window.opener = null;");// 将当前页面的父窗口置为空
			out.println("window.open('','_self');");// 用window直接打开当前窗口
			out.println("window.close();");// 关闭当前页面

			out.println("</script>");
		} catch (IOException e) {
			throw new RuntimeException("评分失败，请联系管理员！");
		}

		return null;
	}

	/**
	 * 专家评审分数信息列表
	 * 
	 * @return
	 */
	public String listReview2ByExperts() {
		ExpertModel em = (ExpertModel) ActionContext.getContext().getSession()
				.get("expertModel");
		ermList = this.getReview2ServiceImpl().findReviewXmListByZjId(
				em.getFBh(), " tx2.year=" + SysParameter.CURRENT_YEAR);
		this.setYear(SysParameter.CURRENT_YEAR);
		zjId = em.getFBh().toString();
		return this.SUCCESS;
	}

	/**
	 * 专家评审结果表
	 * 
	 * @return
	 */
	public String listReview2ResultsByExperts() {
		ExpertModel em = (ExpertModel) ActionContext.getContext().getSession()
				.get("expertModel");
		String hqlWhere = "txj2.basicinfo.xk.id= '" + em.getSysZhuanyemamcId()
				+ "' and txj2.year=" + SysParameter.CURRENT_YEAR;
		review2List = this.getReview2ServiceImpl().findReviewResultsList(
				hqlWhere);
		this.setYear(SysParameter.CURRENT_YEAR);
		return this.SUCCESS;
	}

	/**
	 * 列出所有学科，用于复审分数的查询
	 * 
	 * @return
	 */
	public String listXkForReview2() {
		xkList = this.staticDateService.findXkList();
		return SUCCESS;

	}

	/**
	 * 通过学科与系统年度查询复审分数信息
	 * 
	 * @return
	 */
	public String listReview2Fs() {
		String hqlWhere = " xmfs.year='" + SysParameter.CURRENT_YEAR + "'";// 获得系统年度
		String hqlWhere2 = " tzpf.year='" + SysParameter.CURRENT_YEAR + "'";// 获得系统年度
		String hqlWhere3 = " tx3.year='" + SysParameter.CURRENT_YEAR + "'";// 获得系统年度
		if (xkId.length() > 0) {// 判断如果学科id长度大于0，则查找对应学科的项目信息，否则查找全部项目信息
			hqlWhere = hqlWhere + " and xmfs.basicinfo.xk.id='" + xkId + "'";
		}
		erm2List = this.getReview2ServiceImpl().findReviewXmFsList(hqlWhere);// 获得项目列表
		xmTitle = SysParameter.CURRENT_YEAR + "年北京市发明专利初审基本信息列表";// 构造标题字符串
		shouldReviewExpertCount = this.getZjpsfpServiceImp()
				.findZjpsfpCountByXmpsmcId(SysParameter.SECONDREVIEW, xkId,
						hqlWhere2).toString();// 获得已评专家数
		int alreadyThirdReviewExpert = this.getExpertsVoteServiceImpl()
				.listAlreadyVoteExpertCount(hqlWhere3);// 获取已经进行大评委投票的专家个数
		if (alreadyThirdReviewExpert > 0)// 如果人数大于0
		{
			alreadyThirdReview = true;// 将已经大评委投票置为true
		} else {
			alreadyThirdReview = false;// 否则置为false
		}
		pageroffset = ServletActionContext.getRequest().getParameter(
				"pager.offset");

		return SUCCESS;
	}

	/**
	 * 列出项目的详细信息用于复审审核
	 * 
	 * @return
	 */
	public String listBasicInfoInfoForReview2() {
		basicinfoModel = this.basicInfoService.findBasicinfoById(xmId);// 查出项目信息
		erm2 = (ExpertsReviewModel2) this.getReview2ServiceImpl().findXmByZlid(
				xmId);
		return SUCCESS;
	}

	/**
	 * 列出项目的详细信息用于复审查看
	 * 
	 * @return
	 */
	public String viewBasicInfoInfoForReview2() {
		basicinfoModel = this.basicInfoService.findBasicinfoById(xmId);
		if (null != this.getReview2ServiceImpl().findXmReviewResults2ByXmId(
				xmId)
				&& null != this.getReview2ServiceImpl()
						.findXmReviewResults2ByXmId(xmId).getJydj())// 判断如果组建议等级不为空
		{
			jydjName = this.getReview2ServiceImpl().findXmReviewResults2ByXmId(
					xmId).getJydj().getName();// 将组建议等级赋值给jydjName
		}
		return SUCCESS;
	}

	/**
	 * 将复审结果插入复审结果表
	 * 
	 * @return
	 */
	public String createReview2Result() {
		// System.out.println("生成复审数据成功！");
		// System.out.println("项目id"+basicinfoModel.getZlid());
		// System.out.println("项目总分（计算权重）"+fzqzzf);
		// System.out.println("项目平均分（计算权重）"+xmzzpjf);
		// System.out.println("项目总分"+xmzf);
		// System.out.println("项目平均分"+xmpjf);
		// System.out.println("组建议等级"+jydjId);
		// System.out.println("学科"+xkId);
		this.setXkId(xkId);
		XmReviewResults2 xmReviewResults2 = new XmReviewResults2();

		BasicInfoModel basicInfoModel = new BasicInfoModel();
		basicInfoModel.setZlid(basicinfoModel.getZlid());
		xmReviewResults2.setBasicInfoModel(basicInfoModel);// 存入项目model

		if (null != fzqzzf && fzqzzf.length() > 0) {
			xmReviewResults2.setXmzf(new Double(fzqzzf));// 存入总分
		}
		if (null != xmzzpjf && xmzzpjf.length() > 0) {
			xmReviewResults2.setXmpjf(new Double(xmzzpjf));// 存入平均分
		}
		if (null != xmpxpjf && xmpxpjf.length() > 0) {
			xmReviewResults2.setXmpjpxfx(new Double(xmpxpjf));
		}
		xmReviewResults2.setPsrq(new Date());// 存入当前日期时间

		xmReviewResults2.setYear(SysParameter.CURRENT_YEAR);// 存入当前年份

		String username = ((LoginInfo) (ServletActionContext.getRequest()
				.getSession().getAttribute("logininfo"))).getName();// 通过session获得系统登录用户

		xmReviewResults2.setUsername(username);// 存入当前操作用户

		boolean checkFlag = this.getReview2ServiceImpl().saveOrUpdateTblXmjg2(
				xmReviewResults2, jydjId);

		/**
		 * 以下代码为js转向代码
		 */
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("text/html; charset=utf-8");
		try {
			PrintWriter out = response.getWriter();
			out
					.println("<script language='JavaScript' type='text/JavaScript'>");
			if (true == checkFlag) {
				out.println("alert('审核成功！');");
			} else {
				out.println("alert('审核失败，请重试或联系管理员！');");
			}
			out.println("window.location.href('listReview2Fs.action?xkId="
					+ xkId + "&pager.offset=" + pageroffset + "');");
			out.println("</script>");
		} catch (IOException e) {
			throw new RuntimeException("评审失败，请联系管理员！");
		}
		return null;

	}

	/**
	 * 根据项目id与学科id列出所有专家
	 * 
	 * @return
	 */
	public String listReview2Expert() {
		String hqlWhere = " tzpf.year='" + SysParameter.CURRENT_YEAR + "'";// 获取当前年份
		emList = this.Review2ServiceImpl.listReviewExpertByBasicInfoId(xmId,
				xkId, hqlWhere);
		this.setViewExpertReview(viewExpertReview);
		return SUCCESS;
	}

	public String listReview2Result() {
		String hqlWhere = " txj2.year='" + SysParameter.CURRENT_YEAR + "' ";// 获取当前年份
		HttpServletRequest request = ServletActionContext.getRequest();
		PagerQueryCondition pQCondition = new PagerQueryCondition();// 条件查询类
		pQCondition.initializtion(request);// 初始化查询条件
		if (!"".equals(pQCondition.getHqlWhere())) {
			hqlWhere = hqlWhere + " and " + pQCondition.getHqlWhere();
		}
		pQCondition.setRequestAttribute("pagerCondition", pQCondition
				.getCondition());
		SystemContext.setPagesize(10);
		xmReviewResults2Pm = this.getReview2ServiceImpl().listReview2Result(
				hqlWhere);
		return SUCCESS;
	}

	public String listReview2FsList() {
		String hqlWhere = " tx2.year='" + SysParameter.CURRENT_YEAR + "' ";// 获取当前年份
		erm2List = this.getReview2ServiceImpl().findReviewXmFsListByZlId(xmId,
				hqlWhere);
		return SUCCESS;
	}

	public String exportTblXmfs2() {
		String hqlWhere = " xmfs.year='" + SysParameter.CURRENT_YEAR + "'";// 获得系统年度
		if (xkId.length() > 0) {// 判断如果学科id长度大于0，则查找对应学科的项目信息，否则查找全部项目信息
			hqlWhere = hqlWhere + " and xmfs.basicinfo.xk.id='" + xkId + "'";
		}
		erm2List = this.getReview2ServiceImpl().findReviewXmFsList(hqlWhere);// 获得项目列表
		String path = Config.findHomeDir();// 当前文件所在的根目录
		String fName = "fushenfenshu";
		try {
			fName = new String("初审分数信息列表".getBytes("GBK"), "ISO8859_1");
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		String fileName = path + "\\teptFile2\\" + fName + ".xls";
		File exportFile = this.Review2ServiceImpl.exportSecondReviewFs(
				fileName, erm2List);
		if (null != exportFile) {
			this.setFileName(exportFile.getName());
			InputStream inputStream;
			try {
				inputStream = new FileInputStream(exportFile);
				this.setFileInputStream(inputStream);
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

		return SUCCESS;
	}

	public IReviewService getReview2ServiceImpl() {
		return Review2ServiceImpl;
	}

	public void setReview2ServiceImpl(IReviewService review2ServiceImpl) {
		Review2ServiceImpl = review2ServiceImpl;
	}

	public BaseDataService getBaseDataService() {
		return baseDataService;
	}

	public void setBaseDataService(BaseDataService baseDataService) {
		this.baseDataService = baseDataService;
	}

	public List<BasicInfoModel> getBasicInfoList() {
		return basicInfoList;
	}

	public void setBasicInfoList(List<BasicInfoModel> basicInfoList) {
		this.basicInfoList = basicInfoList;
	}

	public BasicInfoModel getBasicinfoModel() {
		return basicinfoModel;
	}

	public void setBasicinfoModel(BasicInfoModel basicinfoModel) {
		this.basicinfoModel = basicinfoModel;
	}

	public IBasicInfoService getBasicInfoService() {
		return basicInfoService;
	}

	public void setBasicInfoService(IBasicInfoService basicInfoService) {
		this.basicInfoService = basicInfoService;
	}

	public List<ExpertsReviewModel> getErmList() {
		return ermList;
	}

	public void setErmList(List<ExpertsReviewModel> ermList) {
		this.ermList = ermList;
	}

	public String getOperAction() {
		return operAction;
	}

	public void setOperAction(String operAction) {
		this.operAction = operAction;
	}

	public String getPage() {
		return page;
	}

	public void setPage(String page) {
		this.page = page;
	}

	public int getPageRow() {
		return pageRow;
	}

	public void setPageRow(int pageRow) {
		this.pageRow = pageRow;
	}

	public String getPageStr() {
		return pageStr;
	}

	public void setPageStr(String pageStr) {
		this.pageStr = pageStr;
	}

	public List<XmReviewResults> getReview1List() {
		return review1List;
	}

	public void setReview1List(List<XmReviewResults> review1List) {
		this.review1List = review1List;
	}

	public IReviewService getReview1ServiceImpl() {
		return review1ServiceImpl;
	}

	public void setReview1ServiceImpl(IReviewService review1ServiceImpl) {
		this.review1ServiceImpl = review1ServiceImpl;
	}

	public IStaticDataService getStaticDateService() {
		return staticDateService;
	}

	public void setStaticDateService(IStaticDataService staticDateService) {
		this.staticDateService = staticDateService;
	}

	public String getXmId() {
		return xmId;
	}

	public void setXmId(String xmId) {
		this.xmId = xmId;
	}

	public String getXmTitle() {
		return xmTitle;
	}

	public void setXmTitle(String xmTitle) {
		this.xmTitle = xmTitle;
	}

	public List<XmpszbModel> getXpszbList() {
		return xpszbList;
	}

	public void setXpszbList(List<XmpszbModel> xpszbList) {
		this.xpszbList = xpszbList;
	}

	public String getZjId() {
		return zjId;
	}

	public void setZjId(String zjId) {
		this.zjId = zjId;
	}

	public List getAreaList() {
		return areaList;
	}

	public void setAreaList(List areaList) {
		this.areaList = areaList;
	}

	public List getFlztList() {
		return flztList;
	}

	public void setFlztList(List flztList) {
		this.flztList = flztList;
	}

	public List getHyList() {
		return hyList;
	}

	public void setHyList(List hyList) {
		this.hyList = hyList;
	}

	public List getQxkwList() {
		return qxkwList;
	}

	public void setQxkwList(List qxkwList) {
		this.qxkwList = qxkwList;
	}

	public List getXkList() {
		return xkList;
	}

	public void setXkList(List xkList) {
		this.xkList = xkList;
	}

	public List getXkzlList() {
		return xkzlList;
	}

	public void setXkzlList(List xkzlList) {
		this.xkzlList = xkzlList;
	}

	public List getZlType1List() {
		return zlType1List;
	}

	public void setZlType1List(List zlType1List) {
		this.zlType1List = zlType1List;
	}

	public List getZlTypeList() {
		return zlTypeList;
	}

	public void setZlTypeList(List zlTypeList) {
		this.zlTypeList = zlTypeList;
	}

	public List<XmReviewResults> getReview2List() {
		return review2List;
	}

	public void setReview2List(List<XmReviewResults> review2List) {
		this.review2List = review2List;
	}

	public List<XmpsdjModel> getXdmList() {
		return xdmList;
	}

	public void setXdmList(List<XmpsdjModel> xdmList) {
		this.xdmList = xdmList;
	}

	public List<ExpertsReviewModel2> getErm2List() {
		return erm2List;
	}

	public void setErm2List(List<ExpertsReviewModel2> erm2List) {
		this.erm2List = erm2List;
	}

	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}

	/**
	 * @return the jydjId
	 */
	public String getJydjId() {
		return jydjId;
	}

	/**
	 * @param jydjId
	 *            the jydjId to set
	 */
	public void setJydjId(String jydjId) {
		this.jydjId = jydjId;
	}

	/**
	 * @return the jydjName
	 */
	public String getJydjName() {
		return jydjName;
	}

	/**
	 * @param jydjName
	 *            the jydjName to set
	 */
	public void setJydjName(String jydjName) {
		this.jydjName = jydjName;
	}

	/**
	 * @return the xmpjf
	 */
	public String getXmpjf() {
		return xmpjf;
	}

	/**
	 * @param xmpjf
	 *            the xmpjf to set
	 */
	public void setXmpjf(String xmpjf) {
		this.xmpjf = xmpjf;
	}

	/**
	 * @return the xmzf
	 */
	public String getXmzf() {
		return xmzf;
	}

	/**
	 * @param xmzf
	 *            the xmzf to set
	 */
	public void setXmzf(String xmzf) {
		this.xmzf = xmzf;
	}

	/**
	 * @return the xkId
	 */
	public String getXkId() {
		return xkId;
	}

	/**
	 * @param xkId
	 *            the xkId to set
	 */
	public void setXkId(String xkId) {
		this.xkId = xkId;
	}

	/**
	 * @return the fzqzzf
	 */
	public String getFzqzzf() {
		return fzqzzf;
	}

	/**
	 * @param fzqzzf
	 *            the fzqzzf to set
	 */
	public void setFzqzzf(String fzqzzf) {
		this.fzqzzf = fzqzzf;
	}

	/**
	 * @return the xmzzpjf
	 */
	public String getXmzzpjf() {
		return xmzzpjf;
	}

	/**
	 * @param xmzzpjf
	 *            the xmzzpjf to set
	 */
	public void setXmzzpjf(String xmzzpjf) {
		this.xmzzpjf = xmzzpjf;
	}

	/**
	 * @return the emList
	 */
	public List<ExpertModel> getEmList() {
		return emList;
	}

	/**
	 * @param emList
	 *            the emList to set
	 */
	public void setEmList(List<ExpertModel> emList) {
		this.emList = emList;
	}

	/**
	 * @return the shouldReviewExpertCount
	 */
	public String getShouldReviewExpertCount() {
		return shouldReviewExpertCount;
	}

	/**
	 * @param shouldReviewExpertCount
	 *            the shouldReviewExpertCount to set
	 */
	public void setShouldReviewExpertCount(String shouldReviewExpertCount) {
		this.shouldReviewExpertCount = shouldReviewExpertCount;
	}

	/**
	 * @return the zjpsfpServiceImp
	 */
	public IZjpsfpService getZjpsfpServiceImp() {
		return zjpsfpServiceImp;
	}

	/**
	 * @param zjpsfpServiceImp
	 *            the zjpsfpServiceImp to set
	 */
	public void setZjpsfpServiceImp(IZjpsfpService zjpsfpServiceImp) {
		this.zjpsfpServiceImp = zjpsfpServiceImp;
	}

	/**
	 * @return the viewExpertReview
	 */
	public boolean isViewExpertReview() {
		return viewExpertReview;
	}

	/**
	 * @param viewExpertReview
	 *            the viewExpertReview to set
	 */
	public void setViewExpertReview(boolean viewExpertReview) {
		this.viewExpertReview = viewExpertReview;
	}

	/**
	 * @return the xmReviewResults2List
	 */
	public List<XmReviewResults2> getXmReviewResults2List() {
		return xmReviewResults2List;
	}

	/**
	 * @param xmReviewResults2List
	 *            the xmReviewResults2List to set
	 */
	public void setXmReviewResults2List(
			List<XmReviewResults2> xmReviewResults2List) {
		this.xmReviewResults2List = xmReviewResults2List;
	}

	/**
	 * @return the expertsVoteServiceImpl
	 */
	public IExpertsVoteService getExpertsVoteServiceImpl() {
		return expertsVoteServiceImpl;
	}

	/**
	 * @param expertsVoteServiceImpl
	 *            the expertsVoteServiceImpl to set
	 */
	public void setExpertsVoteServiceImpl(
			IExpertsVoteService expertsVoteServiceImpl) {
		this.expertsVoteServiceImpl = expertsVoteServiceImpl;
	}

	/**
	 * @return the alreadyThirdReview
	 */
	public boolean isAlreadyThirdReview() {
		return alreadyThirdReview;
	}

	/**
	 * @param alreadyThirdReview
	 *            the alreadyThirdReview to set
	 */
	public void setAlreadyThirdReview(boolean alreadyThirdReview) {
		this.alreadyThirdReview = alreadyThirdReview;
	}

	/**
	 * @return the xmReviewResults2Pm
	 */
	public PagerModel getXmReviewResults2Pm() {
		return xmReviewResults2Pm;
	}

	/**
	 * @param xmReviewResults2Pm
	 *            the xmReviewResults2Pm to set
	 */
	public void setXmReviewResults2Pm(PagerModel xmReviewResults2Pm) {
		this.xmReviewResults2Pm = xmReviewResults2Pm;
	}

	/**
	 * @return the pageroffset
	 */
	public String getPageroffset() {
		return pageroffset;
	}

	/**
	 * @param pageroffset
	 *            the pageroffset to set
	 */
	public void setPageroffset(String pageroffset) {
		this.pageroffset = pageroffset;
	}

	/**
	 * @return the erm2
	 */
	public ExpertsReviewModel2 getErm2() {
		return erm2;
	}

	/**
	 * @param erm2
	 *            the erm2 to set
	 */
	public void setErm2(ExpertsReviewModel2 erm2) {
		this.erm2 = erm2;
	}

	/**
	 * @return the xmpxpjf
	 */
	public String getXmpxpjf() {
		return xmpxpjf;
	}

	/**
	 * @param xmpxpjf
	 *            the xmpxpjf to set
	 */
	public void setXmpxpjf(String xmpxpjf) {
		this.xmpxpjf = xmpxpjf;
	}

	/**
	 * @return the fileInputStream
	 */
	public InputStream getFileInputStream() {
		return fileInputStream;
	}

	/**
	 * @param fileInputStream
	 *            the fileInputStream to set
	 */
	public void setFileInputStream(InputStream fileInputStream) {
		this.fileInputStream = fileInputStream;
	}

	/**
	 * @return the fileName
	 */
	public String getFileName() {
		return fileName;
	}

	/**
	 * @param fileName
	 *            the fileName to set
	 */
	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

}